AceDesign Pro 1 by
_=Rebel=_



Outils nécessaires :

- Soft-Ice
- W32Dasm
- Un éditeur hexadécimal
- La calculatrice Windows en mode scientifique :)
- Un cerveau pour réfléchir !
- Le soft : AceDesign Pro 1, disponible sur http://www.visic.com


Préambule :

Chaque nouvelle version, chaque nouveau soft qui sort chez Visicom Média est intéressant à cracker :) Mais depuis quelques temps, les protections manquaient un peu de nouveautés ! Celle de WebExpert 4, 5, FTP Expert 1, 2 étaient toutes basées sur le même principe ! Je suis donc parti en me disant : un nouveau truc à cracker de cette société : y'en à pour deux secondes, comme d'hab' ! Lol ! Mais quelle ne fut pas ma surprise lorsque je découvris que ce n'était pas ce que j'avais prévu ! Chouette, on va bien s'amuser : il y a une protection par Serial, avec un Trial de 50 utilisations, puis un check qui vérifie si l'exe est inchangé...enfin, des petits trucs sympas quoi :) Place à l'exposé !


Partie 1 : repérage !

On lance le soft, on va dans "Aide"->"Entrer les infos d'enregistrement".
On tape alors n'importe quoi dans les 4 champs qui sont présents : j'ai mis FFF, FFF, FFF, et 789-456-123...
On clique sur Ok, et BOUM : le soft nous répond : "Code Invalide, blablabla, blablabla !"

On commence en cherchant dans les strings data refs le message "Code Invalide" mais il s'avère qu'on ne le trouve pas !
Alors, comment faire ?
Il faut remarquer que pendant un court instant en haut du Splash Screen de démarrage s'inscrivait "Version Non Enregistrée"...Cool...il n'y a plus qu'à tracer !


Partie 2 : action !

On charge le soft dans le Symbol Loader, et on clique sur les engrenages : on trace, on trace, longtemps, très longtemps, trop longtemps ;))...et finalement, on arrive en 564BAE, un call, suivi en 564BB3 d'un jne vers 564c13...On continue, et finalement, en traçant encore un peu on s'aperçoit que le message s'affiche...
On va donc tenter de patcher le saut qui succède au call en 564c13 (163FBh) : il ne faut pas qu'il saute, on le remplace donc par : 9090 (deux nop, pour n'effectuer aucune opération !)

On relance, et hop, plus de splash, plus de sous-menu pour s'enregistrer dans le menu "Aide" : le soft est bel et bien cracké !!!!

VICTOIRE ! Et bien...pas tout à fait...


Partie 3 : Désillusion ;) !

On programme donc un petit crack, avec une intégration des clés nécessaires dans la Base de registre (voir la conclusion pour la raison), on teste, c'est bon, ça fonctionne ! On avance l'horloge de 1 an, pour vérifier que tout est OK, et apparemment, tout va bien...
Pour terminer, on crée une nouvelle image, pour tester le soft, et au bout de quelques secondes, on se prend un joli nag-screen en pleine face : "Les fichiers du programme sont corrompus blablabla !". AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!!! Saleté de Checksum ;)
Bon, on repart encore un petit peu alors : bpx ShowWindow et on continue ! On relance le soft, une fois lancé, on active le bpx ShowWindow sous Soft-Ice, et on attend quelques instants, et là : POUF, Soft-Ice surgit à nouveau. C'est bon, on fait une bonne dizaine de F12 jusqu'à trouver un truc intéressant (à chaque F12, on monte un peu dans le code avec CTRL+HAUT pour voir comment on a fait pour atterrir ici) et on arrive finalement en 45711E à un je 45712A, précédé d'une comparaison cmp word ptr [eax+2E], 0000...
Super, et bien, on va force le saut avec un jmp 45712A en 45711E, et le tour sera joué !

On teste, ça y est, cette fois, c'est bon, tout fonctionne impecable..................enfin, presque ! :#p !!!!!!!


Partie 4 : Désillusion bis !

Quoi pas fini encore ??? Décidément :) Mais bon, là, je reconnais que c'est plus subtil, et que quelqu'un qui n'essaierait pas le soft ne s'en rendrait pas compte !
Par souci de propreté, j'enregistre une image, et je double-clique dessus pour l'ouvrir directement, et là : je m'aperçois qu'elle ne s'ouvre pas (le soft se lance, mais l'image ne se charge pas !): et µ%µ£¨£%5#{[#[ !!! (cri du cracker qui découvre que le soft se fout de lui ;), mais rira bien qui rira le dernier...) le saut qu'on a patché n'est pas uniquement pour le checksum ! Il faut continuer à chercher !
On pose un bpx sur 45711E, et on lance, le soft break une fois, on fait F5 pour continuer l'exécution, puis on attend un moment (5/6 secondes...) et Soft-Ice resurgît (hors de la nuit...lol!) ! A chaque fois quelques lignes en dessous de ce jz, on voit un call [EBX+2c], il est donc indéterminé (changeant), mais après recherche (en traçant avec F8), on atterrit dans 2 calls différents pour chaque break...
La deuxième fois que Soft-Ice intervient, alors on trace jusqu'à ce call, et on entre... On arrive alors en 56CF14...c'est ce call qui appelle le nag...nous allons faire simple ! On va juste rajouter une instruction ret (C3) une fois entrée dans ce call, avant qu'une instruction soit exécutée, ainsi, le soft continuera gaiement son activité !!!
On se place donc en 56CF14 (16C314h) et on corrige en C390 (C3 pour l'instruction ret, et 90 pour rééquilibrer !) avec un éditeur hexadécimal...et le tour est joué, pour de bon cette fois-ci !


Partie 5 : vérification !

On enregistre, on lance le soft : ça marche !
on ouvre alors un fichier, en double-cliquant dessus, pour vérifier, et le fichier s'ouvre !!!! BINGO !!!! Cette fois on a vraiment gagné !


Conclusion :

Merci à Visicom, pour avoir changé de protection, ça permet de ne pas se lasser :p

P.S. : Je me suis rendu compte après coup que sans avoir essayé de s'enregistrer une fois, le soft n'est pas cracké, apparemment, il cherche des clés dans la base de registre qui ne sont pas présentes si aucun essai d'enregistrement n'a été tenté !

J'espère que vous aurez tout compris ;)
J'attends vos remarques, critiques, suggestions, corrections...

Merci à tous les membres du forum Crff, à toute la team de Fighting-For-Fun et à tous les actifs de la scène française !


Rebel [FFF]
http://www.fighting-for-fun.fr.st